vim の基本操作について

はじめに

vim 初心者である筆者が学んだことを、これから vim を学ぶ人向けに解説していきます。vim の概要と基本操作について知りたいという方は是非ご覧ください。

vim の概要

vim とはテキストエディタのことです。vscode などと類は一緒ですが、その性質は大きく異なります。わかりやすい特徴としては vim はマウスを使いません。全てキーボードで作業を行います。

例えば、テキストの挿入、選択、削除、ファイルの編集その他様々な操作をマウスレスで行います。マウス操作より無駄がなく選択などができるので、効率的に作業ができます。ただし、慣れるのには少し時間がかかります。

また、vim はターミナルからコマンドを打ち込むことで展開できるので、わざわざ vscode 等のエディタを開く必要がないです。

vim のモード

vim には幾つかモードがあり、これを使い分けることで作業を進めます。

モード概要
NORMALカーソルの移動、テキストのコピー、削除、置換
INSERT文字の入力
VISUAL文字の選択
COMMANDファイルの保存や、vim の終了

vim を起動するとまずは NORMAL モードがデフォルトのモードになっています。この状態でキーボードの[i]を入力すると INSERT モードになり、文字の入力を行うことができるようになります。INSERT モードの状態で[Esc]を押すと NORMAL モードに戻ります。これは VISUAL モードも一緒でキーボードの[v]を押すと VISUAL モードになり、[Esc]で解除という流れです。

COMMAND モードは[:]を入力することで移行し、[:]の後に何を入力するかでアクションが変わってきます。例えば、[:q]と入力すると vim を終了することができます。

vim のコマンド紹介

移動系コマンド

コマンド概要
h左に移動
j下に移動
k上に移動
l右に移動

効率的な移動

コマンド概要
ggファイルの先頭に移動
Gファイルの末尾に移動
w単語の先頭に移動
b単語の先頭に戻る
e単語の末尾に進む
0行の先頭に移動
$行の末尾に移動
H画面上の最上行に移動
L画面上の最下行に移動

移動系コマンドは NORMAL モードの時に機能します。INSERT モードの時に h、j などを押しても文字が入力されるので、Esc でノーマルモードに戻す必要があります。

削除系コマンド

コマンド概要
xカーソル上の文字を削除
rカーソル上の文字を置換  r を押した後、任意の文字を押す
dd1 行削除  2dd とすると 2 行削除 数は任意
dw単語の削除
rカーソル上の文字を置換 r を押した後、任意の文字を押す
vd選択範囲を削除

モード変更コマンド

コマンド概要
iその場で INSERT モードに移行
a1 文字後ろで INSERT モードに移行
vVISUAL モードに移行
:COMMAND モードに移行
EscNORMAL モードに移行

保存、終了系コマンド

コマンド概要
:w内容を保存
:wq内容を保存して終了
:wq!内容を保存して強制終了
:q!内容を保存せずに終了

コピー、ペースト、便利系コマンド

コマンド概要
yy1 行コピー
pペースト
Pカーソルの位置の上にペースト
v + 移動コマンド + y範囲を指定してコピー
u操作を一つ前に戻す
control + r操作を一つ次の状態に進める

応用で例えば、yy5p とすると、現在の行をコピーし 5 行ペーストします。この概念は削除、コピー系のコマンドに関しては基本的には同じで、3x などとすると 3 文字削除できます。数字を絡めて色々な組み合わせを試してみていただければと思います。

おわりに

全部のコマンドを一気に覚える必要はないと思います。キーボードで移動して、INSERT モードで編集し、:wq で保存する、ということをを覚えていただくだけである程度作業はできるかなと思います。vim について関心を持つきっかけになれば幸いです。